﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using FONCREAGROINTEGRAL.Models;

namespace FONCREAGROINTEGRAL.Controllers
{
    public class afiliacionepsController : Controller
    {
        public SistIntFoncreagroEntities entidades = new SistIntFoncreagroEntities();
        //
        // GET: /afiliacioneps/

        public ActionResult Index(int id)
        {

            int start = Convert.ToInt32(Request.QueryString["start"]);
            int limit = Convert.ToInt32(Request.QueryString["limit"]);

            //string area = Convert.ToString(Request.QueryString["query"]);

            var query = entidades.AFILIACIONEPSSERVICIOSPROPIOs
                .Where(aeps => aeps.IdPersonal == id);
            /*if (!String.IsNullOrEmpty(area))
            {
                query = query.Where(a => (a.Nombre).ToUpper().Contains(area.ToUpper()));
            }*/
            var result = (from aeps in query.OrderBy(a => a.IdAfiliacionepsserviciospropio).Skip(start).Take(limit).ToList()
                          join eps in entidades.EPSSERVICIOSPROPIOs on aeps.IdEpsserviciospropio equals eps.IdEpsserviciospropio
                          select new
                          {
                              Id = aeps.IdAfiliacionepsserviciospropio,
                              Poliza = aeps.Poliza,
                              Monto = aeps.Monto,
                              Estado = aeps.Estado,
                              FechaAlta = string.Format("{0:d}", aeps.Fechaalta),
                              FechaBaja = string.Format("{0:d}", aeps.Fechabaja),
                              //Area = a.Nombre,
                          }).ToList();

            return Json(new { grid = result, total = query.Count() }, JsonRequestBehavior.AllowGet);
        }

        //
        // GET: /afiliacioneps/Details/5

        public ActionResult Details(int id)
        {
            return View();
        }

        //
        // GET: /afiliacioneps/Create

        public ActionResult Create()
        {
            var query = entidades.EPSSERVICIOSPROPIOs.Select(b => new { b.IdEpsserviciospropio, b.Nombre }).OrderBy(b => b.Nombre);
            ViewData["IdEpsserviciospropio"] = new SelectList(query.AsEnumerable(), "IdEpsserviciospropio", "Nombre");

            return View();
        } 

        //
        // POST: /afiliacioneps/Create

        [HttpPost]
        public ActionResult Create(FormCollection collection, AFILIACIONEPSSERVICIOSPROPIO AFILIACIONEPSSERVICIOSPROPIO)
        {
            var query = entidades.EPSSERVICIOSPROPIOs.Select(b => new { b.IdEpsserviciospropio, b.Nombre }).OrderBy(b => b.Nombre);
            ViewData["IdEpsserviciospropio"] = new SelectList(query.AsEnumerable(), "IdEpsserviciospropio", "Nombre");

            try
            {
                // TODO: Add insert logic here
                if (ModelState.IsValid)
                {

                    var caeps = new AFILIACIONEPSSERVICIOSPROPIO();
                    TryUpdateModel(caeps, collection.ToValueProvider());
                    caeps.Estado = true;
                    entidades.AddToAFILIACIONEPSSERVICIOSPROPIOs(caeps);
                    entidades.SaveChanges();
                    //Insertar Pocedure
                    entidades.PRIMERPAGOEPS(caeps.IdPersonal);
                    return Content("OK");
                }
                return View();
            }
            catch
            {
                return View();
            }
        }
        
        //
        // GET: /afiliacioneps/Edit/5
 
        public ActionResult Edit(int id)
        {
            return View();
        }

        //
        // POST: /afiliacioneps/Edit/5

        [HttpPost]
        public ActionResult Edit(int id, FormCollection collection)
        {
            try
            {
                // TODO: Add update logic here
 
                return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }
        }

        //
        // GET: /afiliacioneps/Delete/5
 
        public ActionResult Delete(int id)
        {
            return View();
        }

        //
        // POST: /afiliacioneps/Delete/5

        [HttpPost]
        public ActionResult Delete(int id, FormCollection collection)
        {
            try
            {
                // TODO: Add delete logic here
 
                return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }
        }
    }
}
